草庐IT

rust 特点

全部标签

Rust真慢,差点跟同事打起来

就在2023年12月28,Rust发布团队有发布新的1.75.0版本。如果你还没有更新,只用该命令进行更新即可:rustupupdatestable接下来,我们来看都更新了那些新特性。1.Trait异步函数在Rust1.75支持在Trait中使用异步fn和->implTrait。但是,这个初始版本带有一些限制,不过也给出了这些限制将在未来的版本中取消。在trait中使用asyncfn:意思是这个特性允许在trait定义中使用异步函数(asyncfn),以前在Rust中是不可能的,导致trait在语言中有点像二等公民。然后,通过了这次版本更新,你完全可以在trait中定义异步函数,并在实现这些t

Rust 枚举和模式匹配

目录枚举的定义枚举值将数据直接放进每一个枚举成员将不同类型和数量的数据放入枚举成员有关联值的枚举和结构体的相似性使用impl在枚举上定义方法Option枚举和其相对于空值的优势match控制流结构绑定值的模式匹配Option匹配是穷尽的通配模式和_占位符iflet简洁控制流本文在原文基础上有删减,原文参考枚举和模式匹配。枚举的定义结构体可以将字段和数据聚合在一起,而枚举可以将一个值成为一个集合之一。定义一个IpAddrKind枚举:enumIpAddrKind{V4,V6,}枚举值创建IpAddrKind两个不同成员的实例:letfour=IpAddrKind::V4;letsix=IpAdd

39. 干货系列从零用Rust编写负载均衡及代理,正则及格式替换

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy项目设计目标利用正则替换的能力,能把指定的字符串替换成想要的字符串。正则库因为rust官方团队并未将正则正式的加入到std标准库里面,目前我们引用的是regex也是rust-lang官方出品的正则库

rust angular 自签名证书 wss

项目中采用wss来建立的前后端连接,但是并没有用到认证的证书,所以自己用openssl生成了私钥,自签名证书来使用:这里就不再赘述Wss连接过程,直接上手操作:1.生成私钥,证书:请查看分类"开发工具"=>使用openssl安装和生成证书2.rust服务端:将生成的 server.crt和server.key放到  d:\\User\\Desktop\\wss\\openssl目录下依赖:[dependencies]rustls="0.19.0"tokio-rustls="0.22.0"tokio={version="1",features=["full"]}tokio-tungstenite

39. 干货系列从零用Rust编写负载均衡及代理,正则及格式替换

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy项目设计目标利用正则替换的能力,能把指定的字符串替换成想要的字符串。正则库因为rust官方团队并未将正则正式的加入到std标准库里面,目前我们引用的是regex也是rust-lang官方出品的正则库

如何用Rust架构复杂系统?

本文经 Rust开发笔记授权转载,如需转载请至Rust开发笔记公众号申请授权。复杂系统具有多个组件和子系统,这些组件和子系统之间往往有高度的相互作用和依赖性。在设计这类系统时,一个主要的挑战是如何确保系统的可靠性、安全性和可维护性。Rust编程语言以其对安全性和性能的强调,成为构建复杂系统的一个理想选择。以下是利用Rust架构复杂系统的详细指南。系统设计原则分治法在Rust中,我们可以使用模块(modules)来划分系统的不同部分,每个模块负责一个子系统或者系统的一个方面。通过将系统分解成更小的、可管理的部分,可以使得系统更加清晰。示例:modnetwork;modstorage;modpro

Rust 使用结构体组织相关联的数据

目录结构体的定义和实例化使用字段初始化简写语法使用结构体更新语法从其他实例创建实例使用没有命名字段的元组结构体来创建不同的类型没有任何字段的类单元结构体结构体示例程序通过派生trait增加实用功能方法语法定义方法带有更多参数的方法关联函数多个impl块本文有删减,原文请参考使用结构体组织相关联的数据。struct或者structure是一个自定义数据类型,允许你包装和命名多个相关的值,从而形成一个有意义的组合。结构体的定义和实例化和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指

Rust 使用结构体组织相关联的数据

目录结构体的定义和实例化使用字段初始化简写语法使用结构体更新语法从其他实例创建实例使用没有命名字段的元组结构体来创建不同的类型没有任何字段的类单元结构体结构体示例程序通过派生trait增加实用功能方法语法定义方法带有更多参数的方法关联函数多个impl块本文有删减,原文请参考使用结构体组织相关联的数据。struct或者structure是一个自定义数据类型,允许你包装和命名多个相关的值,从而形成一个有意义的组合。结构体的定义和实例化和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指

详解Rust编程中的生命周期

1.摘要生命周期在Rust编程中是一个重要概念,它能确保引用像预期的那样一直有效。在Rust语言中,每一个引用都有其生命周期,通俗讲就是每个引用在程序执行的过程中都有其自身的作用域,一旦离开其作用域,其生命周期也宣告结束,值不再有效。幸运的是,在绝大多数时间里,生命周期是隐含且可以进行推断的,类似于当有多种可能的类型时必须注明类型,正因为如此,所以Rust需要使用者使用泛型生命周期参数来注明它们的关系,从而确保程序运行时实际使用的引用绝对有效。2.悬垂引用问题悬垂引用会导致Rust编程中出现一些潜在的安全问题,例如:程序在无意之中引用了非预期引用的数据,而这种现象在没有任何约束的情况下很容易出

Rust 学习

 Rust官网:https://www.rust-lang.org/zh-CN/Rust模块库:https://crates.io/官方文档:https://rustwiki.org/zh-CN/std/all.htmlRustCookbook:https://rust-lang-nursery.github.io/rust-cookbook/Rust爬虫:https://zhuanlan.zhihu.com/p/516033159[Rust]Scraper爬虫简单使用:https://zhuanlan.zhihu.com/p/595712847所有内容全部来自《Rust程序设计语言》和《通过